The free flow of information prevalent today in wired and wireless regimes demands that the source and destination be compatible insofar as storing and interpreting the data for use. The world is populated with information sources where in many cases the data is represented differently from source to source. A major problem facing companies and individuals today is that data existing in one model/schema may be needed in a different model/schema for another purpose. However, such processes are being hampered by a largely disparate and ever-changing set of models/schemas. Such an example can be found in data warehousing where data is received from many different sources for storage and quick access from other sources. Converting data from one model to another model is not only time-consuming and resource intensive, but can be fraught with conversion problems.
The problem of model translation can arise in many contexts. For example, it can be used to generate an implementation from a design (e.g., generate a SQL schema from an ER model and/or generate a C# interface definition from a UML model). It can be used to generate a wrapper for an interface (e.g., generate an XML or OO wrapper for a SQL schema). It can be used to generate a database schema to store program structures (e.g., translate OO type definitions into a SQL schema). Additionally, model translation can be used to translate an interface definition from one language to another (e.g., a Java interface to a C# interface).